package com.jxy.bean.constant;

import com.jxy.bean.ClassFile;

/**
 * 常量池的索引从1开始，而不是从0开始，索引范围为1到constant_pool_count - 1。0用来表示不引用任何一个常量池项目。
 * <p>
 * 最初常量表中共有11中结构各不相同的表结构数据，后来为可更好地支持动态语言调用，额外增加类4种动态语言相关的常量，为了支持Java模块化系统，又加入了CONSTANT_Module_info和CONSTANT_Package_info两个常量，所以截止JDK 13,常量表中分别有17种不同类型的常量。
 */
public abstract class ConstantPool {
    protected ClassFile cf;
    protected int tag = 0;

    public ConstantPool(int tag, ClassFile cf) {
        this.tag = tag;
        this.cf = cf;
    }

    /**
     * 验证数据是否合规
     *
     * @return
     */
    public boolean valid() {
        return true;
    }

    public int getTag() {
        return tag;
    }

    public void setTag(int tag) {
        this.tag = tag;
    }
}
